#pragma once

#include <QMainWindow>
#include <QLineEdit>
#include <QPushButton>
#include <QList>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget* parent = nullptr);
    ~MainWindow() = default;

private slots:
    // 数字按钮点击处理
    void numberClicked();

    // 操作符按钮点击处理
    void operatorClicked();

    // 计算结果
    void calculateResult();

    // 菜单动作处理
    void onNew();
    void onExit();
    void onAbout();

    // 工具栏动作处理
    void onClear();

private:
    void setupUI();
    void createMenus();
    void createToolBar();
    void createStatusBar();
    void setupCentralWidget();

    // UI组件
    QLineEdit* display;
    QList<QPushButton*> numberButtonList;
    QList<QPushButton*> operatorButtonList;

    // 计算状态
    double firstNumber = 0;
    QString currentOperator;

    // 菜单动作
    QAction* newAction;
    QAction* exitAction;
    QAction* aboutAction;
};